/**
 *
 */
package com.angel.data.generator.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @author William
 *
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({java.lang.annotation.ElementType.TYPE})
public @interface Generator {

	/**
	 * Object class to generate.
	 *
	 * @return an object class.
	 */
	public Class<?> objectClass();


	/**
	 * DAO name to use to persist objects generated.
	 * This DAO name must be a spring bean, which will be injected
	 * in the data generator to persist objects generated.
	 *
	 * @return a spring DAO name.
	 */
	public String daoName();

	/**
	 * Data generators dependencies for this generators. These dependencies
	 * will execute before this generator.
	 *
	 * @return an data generator classes dependencies.
	 */
	public Class<?>[] dependencies();

	public int[] pages();

}
